.globl page_fault
page_fault:
	xchgl 	%eax,(%esp)
	pushl 	%ecx
	pushl 	%edx
	pushl 	%ds
	push 	%es
	push 	%fs
	movl 	$0x10,%edx
	mov 	%dx,%ds
	mov 	%dx,%es
	mov 	%dx,%fs
	movl 	%cr2,%edx

	pushl 	%edx
	pushl 	%eax
	testl 	$1,%eax
	jne 	1f
1:	call 	do_no_page
2:
	addl 	$8,%esp
	pop 	%fs

